home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / parser.jar / com / sun / xml / tree / DataNode.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-02-23  |  2.8 KB  |  146 lines

  1. package com.sun.xml.tree;
  2.  
  3. import org.w3c.dom.CharacterData;
  4. import org.w3c.dom.DOMException;
  5. import org.w3c.dom.NodeList;
  6.  
  7. abstract class DataNode extends NodeBase implements CharacterData {
  8.    char[] data;
  9.    static NodeListImpl childNodes = new NodeListImpl();
  10.  
  11.    DataNode() {
  12.    }
  13.  
  14.    DataNode(String var1) {
  15.       if (var1 != null) {
  16.          this.data = new char[var1.length()];
  17.          var1.getChars(0, this.data.length, this.data, 0);
  18.       } else {
  19.          this.data = new char[0];
  20.       }
  21.  
  22.    }
  23.  
  24.    DataNode(char[] var1, int var2, int var3) {
  25.       this.data = new char[var3];
  26.       System.arraycopy(var1, var2, this.data, 0, var3);
  27.    }
  28.  
  29.    public void appendData(String var1) {
  30.       if (((NodeBase)this).isReadonly()) {
  31.          throw new DomEx((short)7);
  32.       } else {
  33.          int var2 = var1.length();
  34.          char[] var3 = new char[var2 + this.data.length];
  35.          System.arraycopy(this.data, 0, var3, 0, this.data.length);
  36.          var1.getChars(0, var2, var3, this.data.length);
  37.          this.data = var3;
  38.       }
  39.    }
  40.  
  41.    public void deleteData(int var1, int var2) throws DOMException {
  42.       if (((NodeBase)this).isReadonly()) {
  43.          throw new DomEx((short)7);
  44.       } else if (var1 >= 0 && var1 < this.data.length && var2 >= 0) {
  45.          var2 = Math.min(var2, this.data.length - var1);
  46.          char[] var3 = new char[this.data.length - var2];
  47.          System.arraycopy(this.data, 0, var3, 0, var1);
  48.          System.arraycopy(this.data, var1 + var2, var3, var1, var3.length - var1);
  49.          this.data = var3;
  50.       } else {
  51.          throw new DomEx((short)1);
  52.       }
  53.    }
  54.  
  55.    public NodeList getChildNodes() {
  56.       return childNodes;
  57.    }
  58.  
  59.    public String getData() {
  60.       return this.toString();
  61.    }
  62.  
  63.    public int getLength() {
  64.       return this.data == null ? 0 : this.data.length;
  65.    }
  66.  
  67.    public String getNodeValue() {
  68.       return this.getData();
  69.    }
  70.  
  71.    public char[] getText() {
  72.       return this.data;
  73.    }
  74.  
  75.    public void insertData(int var1, String var2) throws DOMException {
  76.       if (((NodeBase)this).isReadonly()) {
  77.          throw new DomEx((short)7);
  78.       } else if (var1 >= 0 && var1 < this.data.length) {
  79.          int var3 = var2.length();
  80.          char[] var4 = new char[var3 + this.data.length];
  81.          System.arraycopy(this.data, 0, var4, 0, var1);
  82.          var2.getChars(0, var3, var4, var1);
  83.          System.arraycopy(this.data, var1, var4, var1 + var3, this.data.length - var1);
  84.          this.data = var4;
  85.       } else {
  86.          throw new DomEx((short)1);
  87.       }
  88.    }
  89.  
  90.    public void replaceData(int var1, int var2, String var3) throws DOMException {
  91.       if (((NodeBase)this).isReadonly()) {
  92.          throw new DomEx((short)7);
  93.       } else if (var1 >= 0 && var1 < this.data.length && var2 >= 0) {
  94.          if (var1 + var2 >= this.data.length) {
  95.             this.deleteData(var1, var2);
  96.             this.appendData(var3);
  97.          } else if (var3.length() == var2) {
  98.             var3.getChars(0, var3.length(), this.data, var1);
  99.          } else {
  100.             char[] var4 = new char[this.data.length + (var3.length() - var2)];
  101.             System.arraycopy(this.data, 0, var4, 0, var1);
  102.             var3.getChars(0, var3.length(), var4, var1);
  103.             System.arraycopy(this.data, var1 + var2, var4, var1 + var3.length(), this.data.length - (var1 + var2));
  104.             this.data = var4;
  105.          }
  106.  
  107.       } else {
  108.          throw new DomEx((short)1);
  109.       }
  110.    }
  111.  
  112.    public void setData(String var1) {
  113.       if (((NodeBase)this).isReadonly()) {
  114.          throw new DomEx((short)7);
  115.       } else {
  116.          if (var1 == null) {
  117.             this.setText(new char[0]);
  118.          } else {
  119.             this.setText(var1.toCharArray());
  120.          }
  121.  
  122.       }
  123.    }
  124.  
  125.    public void setNodeValue(String var1) {
  126.       this.setData(var1);
  127.    }
  128.  
  129.    public void setText(char[] var1) {
  130.       this.data = var1;
  131.    }
  132.  
  133.    public String substringData(int var1, int var2) throws DOMException {
  134.       if (var1 >= 0 && var1 <= this.data.length && var2 >= 0) {
  135.          var2 = Math.min(var2, this.data.length - var1);
  136.          return new String(this.data, var1, var2);
  137.       } else {
  138.          throw new DomEx((short)1);
  139.       }
  140.    }
  141.  
  142.    public String toString() {
  143.       return new String(this.data);
  144.    }
  145. }
  146.